import 'reflect-metadata'

// 定义一个装饰器工厂函数，可以返回方法和类的装饰器
export function UseGuards(...guards: Function[]) {
    return (target: object | Function, propertyKey?: string, descriptor?: PropertyDescriptor) => {
        // 如果有该值说明装饰的方法
        if (descriptor) {
            Reflect.defineMetadata('guards', guards, descriptor.value);
        } else {
            Reflect.defineMetadata('guards', guards, target);
        }
    }
}
